﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XMaze3D
{
    public class DisjointSet
    {
        int[] setArray;

        public DisjointSet() : this(256)
        {
        }

        public DisjointSet(int setSize)
        {
            setArray = new int[setSize];
            for (int i = 0; i < setSize; i++)
                setArray[i] = -1;
        }

        public void UnionSets(int s1, int s2)
        {
            if (s1 < s2)
                setArray[s2] = s1;
            else
                setArray[s1] = s2;
        }

        public int Find(int x)
        {
            if (setArray[x] < 0)
                return x;
            else
                return Find(setArray[x]);
        }
    }
}
